1. Technical Field of the Invention
This invention relates to telecommunications and data network systems and, more particularly, to a system and method for dynamically allocating Internet Protocol (IP) addresses to mobile terminals operating in a General Packet Radio Service (GPRS) network.
2. Description of Related Art
When a Mobile Terminal (MT) accesses a GPRS network, a Packet Data Protocol (PDP) Context Activation procedure is utilized to obtain an IP address for the MT. An initial request from the MT is sent to a Serving GPRS Service Node (SGSN) which forwards the request to a Gateway GPRS Service Node (GGSN). The GGSN then interfaces over a Gi interface to either a Radius server or a Dynamic Host Configuration Protocol (DHCP) server to authenticate the MT and obtain an IP address. Several problems, however, arise when MTs attempt to obtain IP addresses with the existing procedures. First, because of the tremendous increase in the usage of the Internet, IP addresses are becoming scarce, and, the particular server that is accessed by the GGSN may have exhausted its allocation of addresses. Alternatively, the server may be down or malfunctioning, or there may be a problem with the link between the GGSN and the server. In any event, there may be times that an IP address cannot be provided to an MT.
In an effort to solve the problem of scarce IP addresses, the Internet Engineering Task Force (IETF) has proposed a solution that uses alternative addresses known as private IP addresses. Private IP addresses can be used anywhere. For example, if MT1 travels outside its home network, it may connect to its home Internet Service Provider (ISP). If the home ISP does not have an actual (public) IP address that it can provide to MT1, the home ISP may provide MT1 with a private IP address. This solution, however, causes a second problem to become apparent with the existing procedures. When a second MT (MT2) connects to a different ISP, it may also be provided with a private IP address. There is no deconfliction of private IP addresses between ISPs to ensure that the same IP address is not given to more than one MT. Therefore, the ISP serving MT2 may provide the same private IP address to MT2 that was provided to MT1, causing a clash of IP addresses in the network.
Another IETF proposal defines a Network Address Translator (NAT) in an attempt to overcome this problem. The NAT device temporarily provides a global public IP address and converts a private IP address to a unique public IP address. If a party is provided with a private IP address, the address can only be used within a private network unless a NAT device is used to translate the address. This solution works fine for most applications, but does not work for real-time applications such as H.323 Voice-over-IP (VoIP). In VoIP, the IP addresses of the parties are contained in the payload itself in addition to the packet headers. The situation may arise, therefore, when MT1 is conducting a VoIP session with MT2, and MT1 sends an IP packet in which the source address is a private IP address. The destination address is MT2""s IP address (public or private). The NAT device changes the source IP address in the header to a temporary public IP address, but the payload still identifies the source IP address as the private IP address. Thus, there is an IP address mismatch that creates problems for real-time applications such as VoIP.
Another problem with existing methods of allocating IP address is the unpredictability of the Gi interface between the GGSN and the server from which IP addresses are requested. While the other interfaces in GPRS (Gs, Gr, Gn, etc.) are tightly controlled, the Gi interface is completely unpredictable.
There are no known prior art teachings of a solution to the aforementioned deficiencies and shortcomings such as that disclosed herein. In order to overcome the disadvantage of existing solutions, it would be advantageous to have a system and method for dynamically allocating IP addresses to MTs in a GPRS network that prevents IP address conflicts and provides addresses that are usable to MTs running real-time applications such as VoIP. In addition, the system and method would bring some order and predictability into the Gi interface. The present invention provides such a system and method.
In one aspect, the present invention is a method of dynamically allocating an IP address to a mobile terminal operating in a GPRS network that includes an SGSN serving the mobile terminal and a GGSN connecting the GPRS network to a server that allocates IP addresses in an IP-based network. The method includes the steps of setting a counter in the GGSN to control the maximum number (Ni) of requests for an IP address that are to be sent from the GGSN to the server; and setting a timer in the GGSN to control a maximum time period (Ti) that the GGSN will wait for a response from the server after each request for an IP address is sent. The GGSN then sends to the server, a sequence of requests for an IP address, with each request being separated from the previous request by time period Ti, and the sequence being halted if a response is received from the server within time period Ti after one of the requests is sent. If a response from the server including an IP address for the mobile terminal is received in the GGSN within time period Ti after one of the requests is sent, the IP address is sent from the GGSN to the mobile terminal.
In another aspect, the present invention is a method by which the GGSN dynamically learns the average time (Tr) and the average number of retries (Nr) for exchanging Radius authentication messages with different Internet Service Provider/Access Point Names (ISP/APNs). For Us those networks involving long delays, the GGSN may use a new signaling scheme to change the GGSN signaling time parameter Ti to ensure that the core packet network reflects the latest topology of the external ISP network.
In another aspect, the present invention is a method of dynamically allocating an IP address to a mobile terminal operating in a GPRS network that includes an SGSN serving the mobile terminal and a GGSN connecting the GPRS network to a server that allocates IP addresses in an IP-based network. The method includes the steps of receiving in the GGSN, information regarding whether the mobile terminal is authorized to receive a backup IP address if an IP address cannot be obtained from the server, and whether the mobile terminal is a user of a real-time application. The method also sets on a timer in the GGSN, a maximum time period (Ti) that the GGSN will wait for a response from the server after a request for an IP address is sent from the GGSN to the server. The method then sends a request for an IP address from the GGSN to the server. If it is determined that time period Ti expired without receiving a response from the server that includes an IP address for the mobile terminal, then it is further determined from the information in the GGSN whether the mobile terminal is authorized to receive a backup IP address. Upon determining that the mobile terminal is authorized to receive a backup IP address, the method determines from the information in the GGSN whether the mobile terminal is a user of a real-time application. If the mobile terminal is a user of a real-time application, this is followed by sending a public IP address from the GGSN to the mobile terminal. If the mobile terminal is not a user of a real-time application, the method sends a private IP address from the GGSN to the mobile terminal instead.
In yet another aspect, the present invention is a system for dynamically allocating an IP address to a mobile terminal operating in a GPRS network. The system includes a Home Location Register (HLR) that stores information regarding whether the mobile terminal is authorized to receive a backup IP address if an IP address cannot be obtained from the server, and whether the mobile terminal is a user of a real-time application. The information is sent via an SGSN to the GGSN. The system also includes a timer in the GGSN for setting a maximum time period (Ti) that the GGSN will wait for a response from the server after a request for an IP address is sent from the GGSN to the server. A Network Access Server (NAS) in the GGSN includes means for sending a request for an IP address from the GGSN to the server, and means for determining that time period Ti expired without receiving a response from the server that includes an IP address for the mobile terminal. Additionally, the system includes means in the GGSN for determining from the information in the GGSN whether the mobile terminal is authorized to receive a backup IP address, and if so, determining from the information in the GGSN whether the mobile terminal is a user of a real-time application. Finally, the system includes means for sending a public IP address from the GGSN to the mobile terminal upon determining that the mobile terminal is a user of a real-time application, and means for sending a private IP address from the GGSN to the mobile terminal upon determining that the mobile terminal is not a user of a real-time application.
In yet another aspect, the GGSN is modified to filter and monitor the Gi interface to ensure that no two mobile terminals currently sharing the same Gi interface are provided with duplicate private IP addresses by different ISPs. If a second mobile terminal is given a duplicate IP address by another ISP, the GGSN signals a rejection of that IP address to the ISP""s Radius server, and requests the provision of an alternate IP address.
In still yet another aspect, the present invention is a modified GGSN in a GPRS network. The GGSN dynamically allocates an IP address to a mobile terminal operating in the GPRS network and includes a counter for setting a maximum number (Ni) of requests for an IP address that are to be sent from the GGSN to the server, and a timer for setting a maximum time period (Ti) that the GGSN will wait for a response from the server after each request for an IP address is sent. The GGSN also comprises a NAS that includes means for sending a sequence of requests for an IP address from the GGSN to the server. Each request is separated from the previous request by time period Ti, and the sequence is halted if a response is received from the server within time period Ti after one of the requests is sent. The NAS also includes means for receiving a response from the server that includes an IP address for the mobile terminal. Finally, the GGSN includes means for sending the IP address from the GGSN to the mobile terminal.
For Virtual Private Networks (VPNs), where the request for setting up a Layer 2 Tunneling Protocol (L2TP) tunnel comes from the Radius server access response, a failure to receive a Radius Access Accept message within a certain time interval causes the GGSN to examine the
Access Point Name (APN) and to deduce tunnel endpoint parameters for setting up the L2TP tunnel.